package com.zmn.oms.third.jddj.dto;

import com.alibaba.fastjson.JSON;
import com.zmn.common.utils.string.StringUtil;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;

/**
 * 类描述：
 *
 * @author LiangHailong
 * @since 2022-05-23 15:34
 */
@Slf4j
public class JddjExtOuterDataDTO {
    /**
     * 订单来源系统，枚举如下：(0, 京东到家),(1, 到家app),(2, 到家h5),(3, 京东搜索订单),(5, 微信小程序),
     * (6, 线下购物),(7, 好收成),(8, 自助收银),(9, 自营店pos机),(10, 售后),
     * (11, 自营店自助收银),(12, 商家小程序),(13, 超级会员-自助收银-到家app),
     * (14, 自营店轻松购),(15, 超级会员-自助收银-小程序),(16, 超级会员-POS-到家app),
     * (17, 超级会员-POS-小程序),(18, 百度小程序),(19, QQ小程序),(20,京东融合【小时购】);
     */
    @Getter
    @Setter
    private String srcOrderType;

    /**
     *
     * @param extOuterDataStr
     * @return
     */
    public static JddjExtOuterDataDTO fromExtOuterDataStr(String extOuterDataStr) {
        try {
            if (StringUtil.isNotBlank(extOuterDataStr)) {
                return JSON.parseObject(extOuterDataStr, JddjExtOuterDataDTO.class);
            }
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
        return new JddjExtOuterDataDTO();
    }

    /**
     * 是否需要校验核销码
     * @return
     */
    public boolean needVerification() {
        // 京东融合【小时购】，订单不需要核销码校验
        return !"20".equals(srcOrderType);
    }

    @Override
    public String toString() {
        return String.format(
                "{\"srcOrderType\":\"%s\"}",
                srcOrderType != null ? srcOrderType : ""
        );
    }
}
